package com.fxz.rabbitmq.api.pojo;

import com.fxz.rabbitmq.api.enums.MessageTypeEnum;
import lombok.*;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * @author Fxz
 * @version 1.0
 * @date 2021-08-17 11:19
 */
@With
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Message implements Serializable {

    private static final long serialVersionUID = -3268235757576028451L;

    /**
     * 唯一的消息ID
     */
    private String messageId;

    /**
     * 消息的主题
     */
    private String topic;

    /**
     * 消息的路由规则
     */
    private String routingKey = "";

    /**
     * 消息的附加属性
     */
    private Map<String, Object> attributes = new HashMap<>();

    /**
     * 延迟消息的参数
     */
    private Integer delayMills;

    /**
     * 消息的类型 默认为CONFIRM消息
     */
    private String messageType = MessageTypeEnum.CONFIRM.getCode();
}
